package com.gzz.orchid.context.domain.inventory.entity;

import com.gzz.orchid.common.core.tuple.Money;
import com.gzz.orchid.common.core.tuple.OrderNo;
import com.gzz.orchid.context.infrastructure.definition.Status;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.Set;

/**
 * 收货单 Received Note
 * 英文全称: Goods Received Note 或 Purchase Receipt
 * 常用缩写: GRN
 * 解释: 当供应商的货物送达仓库时，由仓库管理员填写的单据，
 * 用于记录实际收到的货物信息。这是库存数量增加的关键凭证。
 *
 * @author higmd
 */
@Data
public class ReceivedDo {
    /**
     * 单据编号
     */
    private OrderNo no;
    /**
     * 单据时间
     */
    private LocalDateTime timeAt;
    /**
     * 供应商编号
     */
    private String supplierNo;
    /**
     * (外部单据号) 参考编号
     */
    private String referenceNo;
    /**
     * 仓库编号
     */
    private String warehouseNo;
    /**
     * 批次编号
     */
    private String batchNo;
    /**
     * 处理人
     */
    private String handler;
    /**
     * 金额
     */
    private Money amount;
    /**
     * 备注
     */
    private String memo;
    /**
     * 状态
     */
    private Status status;
    /**
     * 订单明细
     */
    private Set<OrderDetail> items;
}
